﻿using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Text;
using Adalbertus.BudgetPlanner.Domain.Repositories;

namespace Adalbertus.BudgetPlanner.Domain.CodeContracts
{
    [ContractClassFor(typeof(ICashFlowRepository))]
    public class ICashFlowRepositoryContract : ICashFlowRepository
    {
        public CashFlow GetById(int id)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<CashFlow> GetAll()
        {
            Contract.Ensures(Contract.Result<IEnumerable<CashFlow>>() != null);
            throw new NotImplementedException();
        }

        public void Save(CashFlow entity)
        {
            Contract.Requires<ArgumentNullException>(entity != null);
            throw new NotImplementedException();
        }

        public void Save(IEnumerable<CashFlow> domains)
        {
            Contract.Requires<ArgumentNullException>(domains != null);
            throw new NotImplementedException();
        }

        public void Remove(CashFlow domain)
        {
            Contract.Requires<ArgumentNullException>(domain != null);
            throw new NotImplementedException();
        }

        public CashFlow GetBySaving(Saving saving)
        {
            Contract.Requires<ArgumentNullException>(saving != null);
            throw new NotImplementedException();
        }
    }
}
